iT邦幫忙

2024 iThome 鐵人賽

1
佛心分享-刷題不只是刷題

刷經典 LeetCode 題目系列 第 62

經典LeetCode 746. Min Cost Climbing Stairs

  • 分享至 

  • xImage
  •  

這題是要解決最小花費爬樓梯的問題。這是一個經典的動態規劃 (Dynamic Programming, DP) 題目,它要求我們找到一種最省力的方式爬到樓梯的頂端。這個問題非常適合練習 DP 的思維,尤其是狀態轉移方程的設計和優化。

題目:

給定一個整數陣列 cost,其中 cost[i] 是您在索引 i 的樓梯所需的花費。每次可以選擇跨一步或跨兩步,目標是到達樓梯頂端並最小化花費。

  • 您可以從索引 0 或索引 1 開始。

解題思路

實作:

class Solution {
public:
    int minCostClimbingStairs(vector<int>& cost) {
        int n = cost.size();
        int dp1 = cost[0];
        int dp2 = cost[1];

        for (int i = 2; i < n; ++i) {
            int current = std::min(dp1, dp2) + cost[i];
            dp1 = dp2;
            dp2 = current;
        }

        return std::min(dp1, dp2);
    }
};

參考:
#746. Min Cost Climbing Stairs


上一篇
經典LeetCode 108. Convert Sorted Array to Binary Search Tree
下一篇
經典LeetCode 703. Kth Largest Element in a Stream
系列文
刷經典 LeetCode 題目69
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言